/**
 * Copyright ©2003~2019年3月21日 szkingdom
 * @author raohj
 * @date 2019年3月21日
 * @file RBuffer.java
 * @comment : please input your comment to this file
 * @version : input version
 * @modify:
 * 		1、 2019年3月21日 由 raohj 新建文件
 */
package com.ccnu.demojava.util;

import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;

/**
 * @author raohj
 * @date 2019年3月21日
 * @version 
 * @comment to add your comment
 */
public class RBuffer {
	/**
	 * @author raohj
	 * @date 2019年3月21日
	 * @comment 测试缓冲区
	 * @param 
	 * @return 
	 */
	public static void buffer() {
		// 字符缓冲区
		ByteBuffer buf = ByteBuffer.allocate(1024);
		try {
			String str = new String("编程语言");
			buf.put(str.getBytes("GBK"));
			System.out.println("position:" + buf.position() + ",limit：" + buf.limit());
			
			buf.limit(20);		// 限制为128
			buf.position(10);	// offset 设置为10
			System.out.println("position:" + buf.position() + ",limit：" + buf.limit());
			
			buf.mark();		// 标记当前位置
			buf.put(str.getBytes("GBK"));
//			buf.put(str.getBytes("GBK"));
			System.out.println(new String(buf.array(), "GBK"));
			System.out.println("position:" + buf.position() + ",limit：" + buf.limit());
			
			buf.reset();	// 重置之前的标记
			buf.put(new String("身份认证").getBytes("GBK"));
			System.out.println(new String(buf.array(), "GBK"));
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		
		// 封装数据
		ByteBuffer butWrap;
		try {
			butWrap = ByteBuffer.wrap(new String("饶海军").getBytes("GBK"));
			System.out.println(new String(butWrap.array(), "GBK"));
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
